package com.be.beadmin.basicData.service;

import com.alibaba.fastjson.JSONArray;
import com.be.beadmin.basicData.dto.input.RoleDto;
import com.be.beadmin.basicData.dto.input.RoleMenusDto;
import com.be.beadmin.basicData.dto.output.LabelValue;
import com.be.beadmin.basicData.dto.output.RoleEx;
import com.be.beadmin.common.entity.PageEntity;
import org.springframework.data.domain.Page;

import java.util.List;

public interface RoleService {
    /**
     * 分页的查询接口
     * @param pageEntity
     * @return
     */
    Page<RoleEx> getRoleByPage(PageEntity pageEntity);

    /**
     * 增加角色
     * @param roleDto
     */
    void addRole(RoleDto roleDto);

    /**
     * 更新角色
     * @param roleDto
     */
    void updateRole(RoleDto roleDto);

    /**
     * 删除角色
     * @param roleDto
     */
    void delRole(RoleDto roleDto);

    /**
     * 删除多个角色
     * @param roleDtos
     */
    void delRoles(List<RoleDto> roleDtos);

    /**
     * 保存权限
     * @param roleMenusDto
     */
    void saveMenus(RoleMenusDto roleMenusDto);

    /**
     * 获取权限树
     * @param roleid
     * @return
     */
    JSONArray getMenuTreeByRole(String roleid);

    /**
     * 根据Id获取权限
     * @param roleId
     * @return
     */
    List<String> getPermissionById(String roleId);


    /**
     * 获取所有角色的值
     * @return
     */
    List<LabelValue> getRoleList();


}
